Deterministic OpenMP for Race-Free Parallelism
نویسندگان
چکیده
Recent deterministic parallel programming models show promise for their ability to replay computations and reproduce bugs, but they currently require the programmer to adopt restrictive or unfamiliar parallel constructs. Deterministic OpenMP (DOMP) is a new deterministic parallel environment built on the familiar OpenMP framework. By leveraging OpenMP’s block-structured synchronization annotations, which are largely compatible with the constraints of a deterministic model, DOMP eases the parallelization of legacy serial code and preserves substantial compatibility with OpenMP software. A few OpenMP constructs, however, such as atomic and critical, are semantically nondeterministic and unsupported in DOMP. In three well-known parallel benchmark suites, we find that most (81%) uses of these nondeterministic constructs express programming idioms that are compatible with determinism but not directly expressible in OpenMP. DOMP therefore adds new OpenMP constructs to express such idioms deterministically, supporting pipelines and generalized reductions.
منابع مشابه
An Operational Semantic Basis for OpenMP Race Analysis
OpenMP is the de facto standard to exploit the on-node parallelism in new generation supercomputers. Despite its overall ease of use, even expert users are known to create OpenMP programs that harbor concurrency errors, of which one of the most insidious of errors are data races. OpenMP is also a rapidly evolving standard, which means that future data races may be introduced within unfamiliar c...
متن کاملA Generalized Reduction Construct for Deterministic OpenMP
In parallel programming, a reduction is an operation that combines values across threads into a single result, and can be designed and implemented so as to enforce determinism, not only on the result, but also on the intermediate values and evaluation sequence. These features make the reduction an attractive feature for a language-based approach to deterministic parallelism, especially one that...
متن کاملAtomic Section: Concept and Implementation
ABSTRACT A key source of complexity in parallel programming arises from ne-grained synchronization. In the shared memory programming language OpenMP, mutual exclusion for shared data access is achieved by critical sections or locks. The critical section degrades the performance by serializing all critical section instances through a global lock, and impedes a scalable parallelism by the underly...
متن کاملOverlapping communication and computation with OpenMP and MPI
Machines comprised of a distributed collection of shared memory or SMP nodes are becoming common for parallel computing. OpenMP can be combined with MPI on many such machines. Motivations for combing OpenMP and MPI are discussed. While OpenMP is typically used for exploiting loop-level parallelism it can also be used to enable coarse grain parallelism, potentially leading to less overhead. We s...
متن کاملTracing Logical Concurrency for Dynamic Race Detection in OpenMP Programs
OpenMP is an industry standard supporting a serialized program to be executed in parallel with simple compiler directives and libraries. OpenMP covers only user-directed parallelization and does not enforce to fix concurrency bugs, such as data races. However it is difficult to locate data races occurred in an execution of the program, because they may lead the program execution to be non-deter...
متن کامل